Skip to content

Adapt to Spotify API February 2026 changes#344

Closed
redslime wants to merge 10 commits intoadamint:mainfrom
redslime:main
Closed

Adapt to Spotify API February 2026 changes#344
redslime wants to merge 10 commits intoadamint:mainfrom
redslime:main

Conversation

@redslime
Copy link

@redslime redslime commented Mar 3, 2026

This PR addresses all announced February 2026 changes to the Spotify API. All relevant functions and fields affected as detailed below have not been removed, but instead annotated with @SpotifyExtendedQuota since they remain functional if using client credentials with extended quota mode.

Restricted endpoints:

  • Batch gets: GET /albums, /artists, /browse/categories, /episodes, /shows, /tracks
  • Browse: GET /browse/new-releases, /browse/categories, /browse/categories/{id}
  • Markets: GET /markets
  • Artist: GET /artists/{id}/top-tracks
  • User: GET /users/{id}/playlists, /users/{id}

(Audiobook & chapter APIs were restricted as well but are not reflected in this API at the moment)

Restricted fields:

  • Album: album_group, available_markets, external_ids, label, popularity
  • Artist: followers, popularity
  • Show: available_markets, publisher
  • Track: available_markets, external_ids, linked_from, popularity
  • User: country, email, explicit_content, followers, product

Unified /me/library endpoint:

  • Endpoints to add, remove, and check items /me/{albums|episodes|shows|tracks|albums} migrated to /me/library
  • Endpoints to un/follow artists and users /me/following migrated to /me/library

Playlist changes:

  • All tracks fields have been renamed to items. The old field names were kept but marked as deprecated for legacy accessibility
  • All tracks endpoints have also migrated to items
  • Playlist creation endpoint migrated from POST /users/{user_id}/playlists to POST /me/playlists

Older changes (2024):

In 2024, some endpoints were restricted to extended quota mode already, see announcement.
Relevant endpoint functions have also been annotated with @SpotifyExtendedQuota accordingly:

  • Related artists: GET /artists/{id}/related-artists
  • Recommendations: GET /recommendations
  • Audio features/analysis: GET /audio-features/{id}, /audio-analysis/{id}
  • Featured/Category playlists: GET /browse/featured-playlists, /browse/categories/{category_id}/playlists
  • Removing playables from playlist at position (undocumented change)

Older changes (2025):

  • Implicit grants are now marked as deprecated, see announcement

Updated tests

  • Tests using restricted features are now @Ignored
  • Fixed broken tests (references to deleted/unusable uris, usage of removed endpoints, etc)
  • Updated Github workflow dependencies

@redslime
Copy link
Author

redslime commented Mar 3, 2026

Looks like the tests are failing here, I'm assuming the client credentials are outdated for this repo. I've verified both App API and Client API tests as successful over in my own repo: https://github.com/redslime/spotify-web-api-kotlin/actions.
Worth noting that they ran on an old client however, meaning most of the soon to be restricted endpoints were still available at the time of execution - it may be the case that once March 9 comes around and the changes are enforced that some tests (and endpoints) break.

@redslime
Copy link
Author

redslime commented Mar 9, 2026

Well good news, Spotify listened to feedback and decided to postpone "restricted API access to a reduced set of supported endpoints" until further notice. There is now a March 2026 changelog.
That being said, it remains unclear which parts of the announced changes are going through and which ones are postponed:

  • Are restricted fields still live? It seems like some of them are at the time of writing this, but their announcement suggests they intend otherwise? (e.g. the label field of albums is still there while it wasn't announced as a reverted change)
  • Are moved endpoints (mainly the playlist and /me/library ones) actually moved now? Right now, new and old endpoints are still working.

Anyway, considering most changes in this PR are now out of scope, I will close this PR. Once the dust settles and it becomes clear which parts of the originally announced changes are going through, I intend to make new PR(s) adapting to them.

@redslime redslime closed this Mar 9, 2026
@alexshadowolex
Copy link

I swear to god the communication on Spotify's side is a joke. First a 1 month's notice with major changes and then, on the day the changes are supposed to go live and others probably already tried to adjust to the announced changes, they just turn around.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants